const Mock = require('mockjs') // 获取mock对象
const Random = Mock.Random // 获取random对象，随机生成各种数据，
const domain = 'http://mymockjs.com/api' // 定义默认域名，随便写
const code = 200 // 返回的状态码

// 随机生成文章数据
const postData = req => {
  // console.log(req) // 请求体，用于获取参数
  let posts = [] // 用于存放文章数据的数组
  for (let i = 0; i < 10; i++) {
    let post = {
      title: Random.csentence(10, 25), // 随机生成长度为10-25的标题
      icon: Random.dataImage('250x250', '文章icon'), // 随机生成大小为250x250的图片链接
      author: Random.cname(), // 随机生成名字
      date: Random.date() + ' ' + Random.time() // 随机生成年月日 + 时间
    }
    posts.push(post)
  }

  // 返回状态码和文章数据posts
  return {
    code,
    posts
  }
}

// 定义请求链接，类型，还有返回数据
Mock.mock(`${domain}/posts`, 'get', postData)

/// ###################
// let template = {
//   'Boolean': Random.boolean, // 可以生成基本数据类型
//   'Natural': Random.natural(1, 10), // 生成1到100之间自然数
//   'Integer': Random.integer(1, 100), // 生成1到100之间的整数
//   'Float': Random.float(0, 100, 0, 5), // 生成0到100之间的浮点数,小数点后尾数为0到5位
//   'Character': Random.character(), // 生成随机字符串,可加参数定义规则
//   'String': Random.string(2, 10), // 生成2到10个字符之间的字符串
//   'Range': Random.range(0, 10, 2), // 生成一个随机数组
//   'Date': Random.date(), // 生成一个随机日期,可加参数定义日期格式
//   'Image': Random.image(Random.size, '#02adea', 'Hello'), // Random.size表示将从size数据中任选一个数据
//   'Color': Random.color(), // 生成一个颜色随机值
//   'Paragraph': Random.paragraph(2, 5), // 生成2至5个句子的文本
//   'Name': Random.name(), // 生成姓名
//   'Url': Random.url(), // 生成web地址
//   'Address': Random.province() // 生成地址
// }

const mytestdate = function (req) {
  // console.log(req)
  let postsObject = {}

  // 月份
  let month = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']

  // 降水量
  let rain = []
  for (let i = 0; i < 12; i++) {
    let raindata = Random.integer(0, 250)
    rain.push(raindata)
  }

  // 蒸发量
  let evap = []
  for (let i = 0; i < 12; i++) {
    let evapdata = Random.integer(0, 250)
    evap.push(evapdata)
  }

  // 生成温度
  let temp = []
  for (let i = 0; i < 12; i++) {
    let tempdata = Random.integer(0, 39)
    temp.push(tempdata)
  }

  // posts.push(month, rain, temp)

  postsObject = {
    'month': month,
    'rain': { 'unit': 'ml', 'data': rain },
    'evap': { 'unit': 'ml', 'data': evap },
    'temp': { 'unit': '℃', 'data': temp }
  }

  return postsObject
}

Mock.mock(`${domain}/my_test_data`, 'get', mytestdate)

const myLineTestData = function (req) {
  // console.log(req)
  let title = '某工站情况'
  let weekday = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
  // 伪造维修次数
  let fixTimes = []
  for (var i = 0; i < 7; i++) {
    let times = Random.integer(1, 10)// 生成1到100之间的整数
    fixTimes.push(times)
  }
  // 伪造产出
  let outputs = []
  for (var a = 0; a < 7; a++) {
    let output = Random.integer(1, 100)
    outputs.push(output)
  }
  // 伪造良率
  let yeils = []
  for (var y = 0; y < 7; y++) {
    let yeil = Random.integer(1, 100)
    yeils.push(yeil)
  }

  return {
    'title': title,
    'weekday': weekday,
    'fixTimes': { 'unit': '次', 'data': fixTimes },
    'outputs': { 'unit': 'pcs', 'data': outputs },
    'yeils': { 'unit': '%', 'data': yeils }
  }
}

Mock.mock(`${domain}/my_line_test_data`, 'get', myLineTestData)
